Persistent and insatiable demand for ever increasing realism and detail in computer-implemented video games seems to drive the growth of personal computer performance. Unlike computer animation and movie rendering which can process individual scenes over time for playback at a higher frame rate, computer-implemented video games and computer-implemented simulators must render complete, three-dimensional (3D) scenes of a virtual world in real time, i.e., typically at a rate of thirty (30) frames per second or better. The scenes are rendered in real time in the sense that each scene typically depends in part on user-generated input signals, e.g., through physical manipulation of a user input device such as a game controller, which are not predictable prior to generating the sequence of scenes. By producing and immediately displaying such scenes responsive to user-generated input signals, a virtual 3D world responsive to, and interactive with, the user is presented.
This demand has led to the development of increasingly sophisticated and speedy graphics processors for personal computers and specialized computer systems typically referred to as video game systems. Such systems come in three primary forms: Personal computer (PC) systems, Game Console systems (e.g., Microsoft Xbox®, Sony PlayStation2®, Nintendo GameCube™) and Hand-Held Game Systems (e.g. Nintendo GameBoy Advance, Sony PSP). Game software written for the personal computer (PC) platform has a particularly challenging problem, namely, being properly operative within a wide range of hardware configurations due to the large number of motherboards, CPUs, graphics hardware and so on available for the PC platform.
Each graphics hardware configuration, i.e., graphics platform, has a unique collection of capabilities. To enable development of computer-implemented games which avail themselves fully of these capabilities, a number of graphics Application Programming Interfaces (APIs) have been produced. Graphics APIs provide a generally uniform interface and perform direct access to graphics hardware on behalf of other software such as computer-implemented games. Due to the diversity of graphics hardware in which computer-implemented games are to execute and the highly competitive marketplace for computer-implemented games, heavy reliance on graphics APIs is necessary as a practical matter.
In addition, the computer-implemented game marketplace is highly competitive. Game players will readily switch to a game which has a more realistic and entertaining experience. Thus, any improvement in rendering efficiency which allows a computer-implemented game to get more content into a virtual world without sacrificing frame rate due to overwhelming the available graphics hardware and API resources represents a significant competitive advantage in the marketplace.